package com.wh.wisdomsite.xbox.server.util;

import com.baomidou.mybatisplus.mapper.EntityWrapper;

/**
 * 扩充EntityWrapper，使其支持多表查询遇到相同字段无法查询的问题
 *
 * @version V1.0
 * @Package: com.wh.wisdomsite.xbox.server.util
 * @author: 丁奕
 * @date: 2018-08-20 15:10
 * @Copyright 公司版权所有
 * @Company 贵州万华科技有限公司Copyright (c) 2016
 **/
public class WrapperUtil<T> extends EntityWrapper<T> {
    //表别名
    private String tableAlias;

    public String getTableAlias() {
        return tableAlias;
    }

    public void setTableAlias(String tableAlias) {
        this.tableAlias = tableAlias;
    }

    public String getSqlSegmentWithAlias() {
        if(this.tableAlias != null && this.tableAlias != ""){
            String sqlWhere = super.getSqlSegment();
            sqlWhere = sqlWhere.replaceAll("[a-z0-9A-Z_-]{1,}\\s=",this.tableAlias+".$0");
            sqlWhere = sqlWhere.replaceAll("[a-z0-9A-Z_-]{1,}\\sLIKE",this.tableAlias+".$0");
            sqlWhere = sqlWhere.replaceAll("[a-z0-9A-Z_-]{1,}\\s>",this.tableAlias+".$0");
            sqlWhere = sqlWhere.replaceAll("[a-z0-9A-Z_-]{1,}\\s<",this.tableAlias+".$0");
            return sqlWhere;
        }else{
            return super.getSqlSegment();
        }
    }
}
